iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0

今天來增加關卡。

level = 1
max_level = 3

if not bricks:
    if level == max_level:
        screen.fill(white)
        display_message("Congratulations!", black, -50)
        draw_button("Restart", restart_button_rect, button_color, button_hover_color)
        pygame.display.flip()
        wait_for_button_click(restart_button_rect)
        level = 1
        reset_ball_and_paddle()
        create_bricks()
    else:
        screen.fill(white)
        display_message(f"Level {level} Complete!", black, -50)
        draw_button("Next", next_button_rect, button_color, button_hover_color)
        draw_button("Restart", restart_button_rect, button_color, button_hover_color)
        pygame.display.flip()
        wait_for_button_click(next_button_rect)
        level += 1
        ball_speed_x *= 1.2
        ball_speed_y *= 1.2
        reset_ball_and_paddle()
        create_bricks()
        
next_button_rect = pygame.Rect(screen_width // 2 - 100, screen_height // 2 + 100, 200,100)
  • 關卡變數的設定:變數 level 用來追蹤當前遊戲的關卡,初始設定為 1。變數 max_level 設定最多的關卡數目,在這個程式裡設為 3。
  • 判斷磚塊是否全部被打掉:在每次遊戲迴圈中,使用 if not bricks 來檢查所有磚塊是否已經被打掉,若磚塊清空則判定該關卡完成。
  • 處理過關邏輯:若玩家完成關卡但未達最後一關,顯示「Level Complete!」訊息,提供「Next」按鈕讓玩家進入下一關,也同時提供提供「Restart」按鈕讓玩家重新開始。若玩家完成了最後一關,顯示「Congratulations!」訊息,並顯示「Restart」按鈕,讓玩家重新開始。

我自己有嚐試玩玩看,不小心把速度變數提太高,不斷在第一關重新開始,趕緊把數值調慢一點,果真讓我過了。沒想到調整數值差點把自己玩沒了。

那今天就先這樣。/images/emoticon/emoticon29.gif


上一篇
遊戲的開始與結束
下一篇
總結與回顧
系列文
從Python入門到自製遊戲:30天鐵人挑戰之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言